約 1,533,389 件
https://w.atwiki.jp/ce00582/pages/5366.html
JAVA GUI (1)プログラム GUI JWS GUI クラス (2)コメント IDEは便利です。 (3)リンク (4)作業記録 8月18日 ページ作成
https://w.atwiki.jp/t-na/pages/12.html
GUIのスキンに画像を貼る Version 0.12.0 Irrlichtに組み込まれているウィンドウやタブなどの部品に画像を貼る方法が解かったのでメモっとく。 方法 ITextureオブジェクトを作成。 それにgetTexture() でテクスチャを読み込む。 addImage() で目的の部品に貼り付ける。 例 ITexture *tex; tex = Driver- getTexture( "hoge.bmp" ); Env- addImage( tex, position2d s32 ( 0, 0 ), false, GUI1, 1000 ); 上の例ではhoge.bmpをGUI1の部品に貼り付けている。 最後の1000はIDで多分省略しても問題ないと思う。 IDを付けるとイベントレシーバで拾えるので、巧く使うとクリッカブルな部品にしたり、ホバー状態にするとツールチップが出るようにしたりとか出来るかもしれない(試してない) addImage(image, pos, useAlphaChannel, parent, id, text) GUIに画像を貼る。 video ITexture *image テクスチャオブジェクト core position2d s32 pos テクスチャ表示位置 bool useAlphaChannel アルファチャンネルを使う(省略時=true) IGUIElement *parent 親になるGUI部品(省略時=0) s32 id テクスチャに割り当てるID(省略時=-1) const wchat_t *text 謎orz(省略時=0) 名前 コメント
https://w.atwiki.jp/t-na/pages/14.html
ウィンドウのスキンに画像を貼る Version 0.12.0 ウィンドウもボタンなどと同じGUI部品なのでGUIのスキンに画像を貼るの方法でいけるのだが、ただ貼るだけじゃダメ。 何がダメかって言うと、画像を張るとボタンが隠れてしまうし、カラーキーを設定しているとその部分が真っ黒になる。 カラーキーの部分に関してはaddImage() のuseAlphaChannel をtrue にすればいい。 ウィンドウの地のスキンが表示されるようになった。 次にボタンの方だが、これは優先順位を変更すればいい。 とても簡単。 getCloseButton() でポインタ取得。 bringToFront() で優先順位を変える。 以上。 例 IGUIWindow *HogeWin = Env- addWindow( rect s32 ( 280, 0, 560, 120 ), false, L"Hoge Window", 0, 110 ); Tex = Driver- getTexture( "hoge.bmp" ); Driver- makeColorKeyTexture( Tex, SColor( 0, 255, 0, 255 ) ); IGUIImage *Img1 = Env- addImage( Tex, position2d s32 ( 0, 0 ),true , HogeWin, 1000 ); IGUIButton *CloseBtn = HogeWin- getCloseButton(); HogeWin- bringToFront(CloseBtn) 上の例ではHoge Windowという名のウィンドウを作成し、そのウィンドウにhoge.bmpを貼り、bringToFront() で閉じるボタンの優先順位を上げている。 ボタンが表示されるようになった(´▽`*) bool bringToFront( *element ) GUI部品を表示優先順位を上げる。 成功すればtrue、失敗ならfalseを返す。 IGUIElement *element 優先順位を上げる部品のポインタ。 ついでなんで、地の色も透明にしてみる。 方法はgetSkin() でポインタを取得しsetColor で色やアルファを変える。 ただし、この方法だと他のGUI部品の色やアルファも影響を受ける。 特定のGUI部品だけ変える方法があるかどうかはわからないorz 例: IGUISkin *Skin = Env- getSkin(); Skin- setColor( EGDC_3D_SHADOW, SColor( 0, 0, 0, 0) ); Skin- setColor( EGDC_3D_FACE, SColor( 0, 0, 0, 0) ); 上の例では、スキン表面の明るいところと暗いところのアルファを0にしている。 枠も消したければ、EGDC_3D_DARK_SHADOW やEGDC_3D_HIGH_LIGHT のアルファも0にすればいい。 ただし、透明になってもそこには見えないウィンドウ が存在している状態なのでマウスでクリックすることが出来る。 透明部分をドラッグしてウィンドウを移動させることができるし、重なったウィンドウの隙間越しに下にあるウィンドウをクリックするなどということは出来ないということ。 名前 コメント
https://w.atwiki.jp/nadebook/pages/238.html
GUIを使ってみよう! 他の言語に比べて、なでしこによるGUI画面の作成はとても簡単です。 例えば、母艦にエディタとボタンを作成してみましょう。 '------------------------ 名前エディタとはエディタ。 挨拶ボタンとはボタン。 '------------------------ [実行画面] これでエディタ部品「名前エディタ」とボタン部品「挨拶ボタン」を配置できました。 「(部品名)とは(部品)」と書くだけでGUI部品を作成することができます。 簡単ですね。 では、名前エディタに自分の名前を入力して、挨拶ボタンを押すとダイアログが表示されるように変更します。 '---------------------------------------------- 名前エディタとはエディタ。 挨拶ボタンとはボタン。 挨拶ボタンをクリックした時は 「{名前エディタ}さん、こんにちは。」と言う。 '---------------------------------------------- [実行画面] ボタン部品にはクリックしたことを感知するイベントがありますので、実行したい処理を書くことができます。 これにより、ボタンをクリックすると、特定の処理を実行することができます。 今度は、ボタンの位置を変えてみます。 '---------------------------------------------- 名前エディタとはエディタ。 挨拶ボタンとはボタン。 挨拶ボタンの位置は「{名前エディタの右側}」 挨拶ボタンをクリックした時は 「{名前エディタ}さん、こんにちは。」と言う。 '---------------------------------------------- [実行画面] ボタンがエディタの右隣に配置されました。 GUI部品にはさまざまな種類があり、さらに詳細な設定ができますので、思い通りの画面設計をすることができます。 GUIとは メンバ変数(状態)とメンバ関数(動作)とイベント(操作)
https://w.atwiki.jp/t-na/pages/13.html
ウィンドウに最小化ボタンとかを付ける Version 0.12.0 addWindow() で作成したウィンドウには閉じるボタンしか付いてない。 ように見えるが、実は最小化と最大化のボタンも付いている。これは、デフォで見えないようになっているだけ。 なので、getMinimizeButton やgetMaximizeButton() でポインタを取得し、setVisible() で可視状態にすればいい。 ただし、ボタンを押した時の処理は設定されていないので、イベントレシーバで拾って自前で行わなければならない。 しかし、デフォだとこれらのボタンにはIDが振られていない。そのままだと処理し辛いためsetID() でIDを付けてやると良いかもしれない。 例 IGUIWindow *HogeWin = Env- addWindow( rect s32 ( 280, 0, 560, 120 ), false, L"Hoge Window", 0, 110 ); IGUIButton *MaxBtn = HogeWin- getMaximizeButton(); MaxBtn- setVisible( true ); MaxBtn- setID( 20000 ); 上の例ではHoge Windowという名のウィンドウを作成し、そのウィンドウの最大化ボタンのポインタを取得し、そのポインタを元に、可視状態の設定とIDの設定を行っている。 IGUIButton* getCloseButton() 閉じるボタンのポインタを取得。 IGUIButton* getMaximizeButton() 最大化ボタンのポインタを取得。 IGUIButton* getMiniimizeButton() 最小化ボタンのポインタを取得。 setVisible( visible ) GUI部品の可視状態を設定する。 bool visible true=可視 / false=不可視 setID( id ) GUI部品のIDを設定する。 s32 id 設定するID IGUIWindow addWindow( rectangle, modal, *text, parent, id ) ウィンドウの作成。 rect s32 rectangle 作成する座標(x1, y1, x2, y2)x2,y2は幅と高さではない 。 bool modal trueならモーダルウィンドウになる。 wchar_t *text ウィンドウタイトルに表示する文字。 IGUIElement parent 親のポインタ。0なら親なし。 s32 id このウィンドウに設定するID 名前 コメント
https://w.atwiki.jp/airportmod/pages/28.html
GUI This page describes the GUI added to airportmod. This page explains how to use the GUI in minecraft, but please refer to Aviation term page for terminology and details. ILS Panel. This is the screen for configuring the ILS settings. You can open it by pressing the " " key. (Can be changed from the minecraft key settings) ❶ The available ILS frequencies. ❷ Settable ILS frequencies. ❶ This is the button to swap the values of ❶ and ❷. ❷ Knob to change the value of the upper two digits from the decimal point in ❷. Can be set with the mouse wheel or by clicking a button. ❸ Knob to change the value of the last two digits of the decimal point in ❷. Can be set with the mouse wheel or by clicking a button. ❹ You can set each of OFF, NAV, and COM by clicking the mouse wheel or button. OFF Stopping the ILS function NAV Allows you to operate the ILS function using the settings on the ILS panel. COM Operates the ILS function using the command. Refer to Command page for details. Landing Point This screen allows you to set the target landing point. ❶ The currently set frequency. ❶ Setting the airport name. ❷ Setting the runway number. ❸~❽ Setting Alphabetic characters to be added after the runway number. ➒ Knob to change the value of the two digits above the decimal point in ❶. Can be set with a mouse wheel or a click of a button. ❿ Knob to change the value of the last two digits from the decimal point of ❶. Can be set by clicking the mouse wheel or button. ILS Receiver This is the ILS receiver screen. This screen is automatically displayed when the receiver is ready and the screen is normal. Horizontal lines Indicates the vertical displacement of the actual location relative to the descent path. The descent path is located in the direction of the white reference line. Vertical line Represents the left-right displacement of the actual location relative to the descent path. The descent path is located in the direction of the line relative to the white reference line. Red triangle Indicates the deviation of the actual direction from the descent path. The direction of the red triangle relative to the white reference line is the reference direction. The moving point in the center:indicates the actual direction of movement relative to the descent path. Runway Number This screen is used to set the runway indication display. ❶~❻ These are the settings for the alphabet that will follow the runway number. ❼ This is for setting the runway number.
https://w.atwiki.jp/vst_prog/pages/93.html
トップページ VST GUIの作成 一定間隔でGUIの描画更新するサンプル。 テキストラベルを表示するサンプルをもとにしている。 テキストラベルを表示するサンプルからの追加内容としては以下のとおり。 idle()関数(100ミリ秒ごとに呼び出される関数)をオーバーライド idle()関数の中にカウンタを用意し、呼び出されることにカウントアップし描画する。 なお作成したVSTは以下のとおり。(DLLファイルを利用するときはウィルスチェックをかけてください) ダウンロード サンプルコード全体 【MyGuiVst5.cpp】 #define _CRT_SECURE_NO_DEPRECATE 1 #include stdio.h #include stdlib.h #include string.h #include math.h #include windows.h #include "audioeffectx.h"#include "vstcontrols.h" // ============================================================================================// 設計情報の記入// ============================================================================================#define MY_VST_VENDOR "test vendor" //作者(ベンダー)名#define MY_VST_VERSION 1 //このVSTバージョン#define MY_VST_PRODUCT_NAME "Sample VST GUI" //このVSTの製品名#define MY_VST_NAME "GUI" //このVSTの名前 #define MY_VST_INPUT_NUM 2 //入力数。モノラル入力=1、ステレオ入力=2#define MY_VST_OUTPUT_NUM 2 //出力数。モノラル出力=1、ステレオ出力=2 #define MY_VST_UNIQUE_ID SMPL //ユニークID //公開する場合は以下URLで発行されたユニークIDを入力する。 //http //ygrabit.steinberg.de/~ygrabit/public_html/index.html #define MY_VST_PRESET_NUM 1 //プリセットプログラムの数#define MY_VST_PARAMETER_NUM 2 //パラメータの数 #define MYVST_VOLUME_L 0#define MYVST_VOLUME_R 1// ============================================================================================// VST GUIクラス// ============================================================================================class VstGui5 public AEffGUIEditor, CControlListener{public VstGui5 (void* effect);virtual ~VstGui5 (); // GUIのWindowを開いたときと閉じたときに処理を行う関数virtual bool open (void *ptr);virtual void close (); // 他の処理がアイドル状態の際に呼び出される関数// GUI描画の更新等を行う。// おそらく100ミリ秒ごとに呼び出される。virtual void idle (); // ボタンやつまみ等が動かされたときに処理を行う関数// 今回はテキストラベルのみのため、処理すべきことはないが、// valueChanged()関数は必ずオーバーライドしなければならない。virtual void valueChanged (CDrawContext *pContext, CControl *pControl) {}; protected // テキストラベルCTextLabel* textLabel;}; VstGui5 VstGui5 (void* effect) AEffGUIEditor ((AudioEffect*)effect){// 継承元のにあるrect変数を初期化。// このrect変数にGUIのWindowsサイズを設定する。// (設定を行わないとWindowが開けない)rect.left = 0;rect.top = 0;rect.right = 512;rect.bottom = 256;} VstGui5 ~VstGui5 (){} bool VstGui5 open (void *ptr){// まずは継承元の関数を呼び出す(必須)AEffGUIEditor open (ptr); // 次にフレーム(CFrame)を作成する。// ボタンやつまみ等はこのフレームの上に配置する形になる// ここではWindowと同じサイズのフレームを作成しているCRect size (rect.left, rect.top, rect.right, rect.bottom); CFrame* cframe = new CFrame (size, ptr, this);// 作成したフレームは継承元にあるframe変数に値を保存する必要がある。this- frame = cframe; // -----------------------------------------------------------------// テキストラベルの大きさを設定 CRect textsize (0, 0, 80, 25); // テキストラベルの位置を設定textsize.offset (16, 16); // テキストラベルを作成textLabel = new CTextLabel(textsize, "TextLabel", NULL, kLeft); // テキストラベルをframeに追加するframe- addView (textLabel); // 処理に問題がなければtrueを返すreturn true;} void VstGui5 close (){// frameをdeleteすることを忘れないようにするif (frame){delete frame;}frame = 0;} void VstGui5 idle (){// まずは継承元の関数を呼び出す(必須)AEffGUIEditor idle (); // このVSTGUI固有の処理を記載する static int i = 0;char text[256]; sprintf_s(text, 256,"%d", i); //テキストラベルの文字を設定するtextLabel- setText (text); // テキストラベルの描画を更新するtextLabel- setDirty(); i++;} // ============================================================================================// VSTの基本となるクラス// ============================================================================================class MyVstGui5 public AudioEffectX{public MyVstGui5 (audioMasterCallback audioMaster);~MyVstGui5 (); // 音声信号を処理するメンバー関数virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames);}; // ============================================================================================// このVSTのを生成するための関数// ============================================================================================AudioEffect* createEffectInstance (audioMasterCallback audioMaster){//newでこのVSTを生成したポインタを返すreturn new MyVstGui5 (audioMaster);} // ============================================================================================// コンストラクタ、デストラクタ(VSTの初期化、終了処理を記述)// ============================================================================================MyVstGui5 MyVstGui5 (audioMasterCallback audioMaster) AudioEffectX (audioMaster, MY_VST_PRESET_NUM, MY_VST_PARAMETER_NUM){//VSTの初期化を行う。 //以下の関数を呼び出して入力数、出力数等の情報を設定する。//必ず呼び出さなければならない。setNumInputs (MY_VST_INPUT_NUM); //入力数の設定setNumOutputs (MY_VST_OUTPUT_NUM); //出力数の設定setUniqueID (MY_VST_UNIQUE_ID); //ユニークIDの設定 isSynth (false); //このVSTがSynthかどうかのフラグを設定。 //Synthの場合…true、Effectorの場合…false canProcessReplacing (); //このVSTが音声処理可能かどうかのフラグを設定。 //音声処理を行わないVSTはないので必ずこの関数を呼び出す。 // GUIを設定するeditor = new VstGui5(this); //このVSTのパラメータを初期化する。} MyVstGui5 ~MyVstGui5 (){//VSTの終了処理をする。//このVSTでは特に実行する処理はなし。 // GUIはdeleteしなくていいっぽい} // ============================================================================================// 音声信号を処理するメンバー関数// ============================================================================================void MyVstGui5 processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames){float *inL = inputs[0]; //入力 左用float *inR = inputs[1]; //入力 右用float *outL = outputs[0]; //出力 左用float *outR = outputs[1]; //出力 右用 for (int i = 0; i sampleFrames ; i++){// 入力をそのまま出力へoutL[i] = inL[i];outR[i] = inR[i];}} VST Tipsトップページへ(準備中)
https://w.atwiki.jp/vst_prog/pages/92.html
トップページ VST GUIの作成 VST GUIのウィンドウが開かれるだけのサンプルにテキストラベルを追加したもの。 追加内容としては以下のとおり。 テキストラベルクラスCTextLabelクラス)へのポインターをGUIクラスの変数として定義 GUIクラスのopen()関数にテキストラベルを作成するコードの追加 なお作成したVSTは以下のとおり。(DLLファイルを利用するときはウィルスチェックをかけてください) ダウンロード サンプルコード全体 【MyGuiVst2.cpp】 #define _CRT_SECURE_NO_DEPRECATE 1 #include stdio.h #include stdlib.h #include string.h #include math.h #include windows.h #include "audioeffectx.h"#include "vstcontrols.h" // ============================================================================================// 設計情報の記入// ============================================================================================#define MY_VST_VENDOR "test vendor" //作者(ベンダー)名#define MY_VST_VERSION 1 //このVSTバージョン#define MY_VST_PRODUCT_NAME "Sample VST GUI" //このVSTの製品名#define MY_VST_NAME "GUI" //このVSTの名前 #define MY_VST_INPUT_NUM 2 //入力数。モノラル入力=1、ステレオ入力=2#define MY_VST_OUTPUT_NUM 2 //出力数。モノラル出力=1、ステレオ出力=2 #define MY_VST_UNIQUE_ID SMPL //ユニークID //公開する場合は以下URLで発行されたユニークIDを入力する。 //http //ygrabit.steinberg.de/~ygrabit/public_html/index.html #define MY_VST_PRESET_NUM 1 //プリセットプログラムの数#define MY_VST_PARAMETER_NUM 2 //パラメータの数 #define MYVST_VOLUME_L 0#define MYVST_VOLUME_R 1// ============================================================================================// VST GUIクラス// ============================================================================================class VstGui4 public AEffGUIEditor, CControlListener{public VstGui4 (void* effect);virtual ~VstGui4 (); // GUIのWindowを開いたときと閉じたときに処理を行う関数virtual bool open (void *ptr);virtual void close (); // ボタンやつまみ等が動かされたときに処理を行う関数// 今回はテキストラベルのみのため、処理すべきことはないが、// valueChanged()関数は必ずオーバーライドしなければならない。virtual void valueChanged (CDrawContext *pContext, CControl *pControl) {}; protected // テキストラベルCTextLabel* textLabel;}; VstGui4 VstGui4 (void* effect) AEffGUIEditor ((AudioEffect*)effect){// 継承元のにあるrect変数を初期化。// このrect変数にGUIのWindowsサイズを設定する。// (設定を行わないとWindowが開けない)rect.left = 0;rect.top = 0;rect.right = 512;rect.bottom = 256;} VstGui4 ~VstGui4 (){} bool VstGui4 open (void *ptr){// まずは継承元の関数を呼び出す(必須)AEffGUIEditor open (ptr); // 次にフレーム(CFrame)を作成する。// ボタンやつまみ等はこのフレームの上に配置する形になる// ここではWindowと同じサイズのフレームを作成しているCRect size (rect.left, rect.top, rect.right, rect.bottom); CFrame* cframe = new CFrame (size, ptr, this);// 作成したフレームは継承元にあるframe変数に値を保存する必要がある。this- frame = cframe; // -----------------------------------------------------------------// テキストラベルの大きさを設定 CRect textsize (0, 0, 80, 25); // テキストラベルの位置を設定textsize.offset (16, 16); // テキストラベルを作成textLabel = new CTextLabel(textsize, "TextLabel", NULL, kLeft); // テキストラベルをframeに追加するframe- addView (textLabel); // 処理に問題がなければtrueを返すreturn true;} void VstGui4 close (){// frameをdeleteすることを忘れないようにするif (frame){delete frame;}frame = 0;} // ============================================================================================// VSTの基本となるクラス// ============================================================================================class MyVstGui4 public AudioEffectX{public MyVstGui4 (audioMasterCallback audioMaster);~MyVstGui4 (); // 音声信号を処理するメンバー関数virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames);}; // ============================================================================================// このVSTのを生成するための関数// ============================================================================================AudioEffect* createEffectInstance (audioMasterCallback audioMaster){//newでこのVSTを生成したポインタを返すreturn new MyVstGui4 (audioMaster);} // ============================================================================================// コンストラクタ、デストラクタ(VSTの初期化、終了処理を記述)// ============================================================================================MyVstGui4 MyVstGui4 (audioMasterCallback audioMaster) AudioEffectX (audioMaster, MY_VST_PRESET_NUM, MY_VST_PARAMETER_NUM){//VSTの初期化を行う。 //以下の関数を呼び出して入力数、出力数等の情報を設定する。//必ず呼び出さなければならない。setNumInputs (MY_VST_INPUT_NUM); //入力数の設定setNumOutputs (MY_VST_OUTPUT_NUM); //出力数の設定setUniqueID (MY_VST_UNIQUE_ID); //ユニークIDの設定 isSynth (false); //このVSTがSynthかどうかのフラグを設定。 //Synthの場合…true、Effectorの場合…false canProcessReplacing (); //このVSTが音声処理可能かどうかのフラグを設定。 //音声処理を行わないVSTはないので必ずこの関数を呼び出す。 // GUIを設定するeditor = new VstGui4(this); //このVSTのパラメータを初期化する。} MyVstGui4 ~MyVstGui4 (){//VSTの終了処理をする。//このVSTでは特に実行する処理はなし。 // GUIはdeleteしなくていいっぽい} // ============================================================================================// 音声信号を処理するメンバー関数// ============================================================================================void MyVstGui4 processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames){float *inL = inputs[0]; //入力 左用float *inR = inputs[1]; //入力 右用float *outL = outputs[0]; //出力 左用float *outR = outputs[1]; //出力 右用 for (int i = 0; i sampleFrames ; i++){// 入力をそのまま出力へoutL[i] = inL[i];outR[i] = inR[i];}} VST Tipsトップページへ(準備中)
https://w.atwiki.jp/git_jp/pages/34.html
GUIで始めるGit Gitに同梱されている GUIツール git-gui/gitk の使い方を説明します。 git gui を使ったgitの入門ってあまり見ませんが、 とても分かりやすいですし、gitが初めての方はまずは git-gui/gitk を使ってみるのがお勧めです。 このページではイントロ部分しか説明しませんが、 このページを見る方がたくさんでてくるようなら 続編も作成しようと思います。 GUIとCUIの橋渡しとして、できるだけ対応するコマンドについても説明しますので、 コマンドライン好きな方も是非このページを見て git 理解の一助にしてください。 目次: GUIで始めるGit0. git gui がインストールされているか確認 1. バージョン管理を始める前準備1:リポジトリを作成する 2. バージョン管理を始める前準備2:自己紹介 3. バージョン管理をする(コミットする) 4. 変更履歴を確認する おわり 0. git gui がインストールされているか確認 事前準備として「git gui」および「gitk」コマンドを実行し、git gui と gitk が起動できることを確認しましょう。 (Windowsでmsysgitを使っている場合は、フォルダ内で右クリックし「Git GUI」メニューが選択できるか確認) Windowsで msysgit をインストールしている方なら、git gui と gitk が既にインストールされてるはずです。 Linuxで git gui を実行したときに「git 'gui' is not a git command」のようなエラーがでた方は git gui がインストールできていないと思われるので、以下のようにして git gui と gitk をインストールしましょう。 Ubuntu/Debian系: apt-get install git-gui gitk RedHat/Fedora系: yum install git-gui gitk 1. バージョン管理を始める前準備1:リポジトリを作成する バージョン管理を始めるには、初めに変更履歴の保管庫(リポジトリ)を準備する必要があります。 次のようにして作成します。 1. どこのディレクトリ上でも良いので、git gui コマンドを実行します。 (Windowsでmsys版gitを使っている場合は、フォルダ内で右クリックし「Git GUI」メニューを選択) こんな画面がでてくるはずです。 2. この画面上で「新しいリポジトリを作る」を選択し、 Git管理したいファイルのあるディレクトリを選択して「作成」ボタンを押すと 選択した場所に、リポジトリが作成されます。 なお、github などで公開されているOSSソースを複製して開発を始めるなら 「既存リポジトリを複製する」を選択します。 「ソースの位置」に"git //~" や "http //~" などのリポジトリのパスを指定し、 「先ディレクトリ」に複製先のローカルパスを入れて「複製」ボタンを押すと リポジトリが複製されます。 3. リポジトリが作成された後は、自動的に「リポジトリ」「編集」などのメニュのある別の画面に 切り替わります。この画面は次の作業でも使うので、閉じないでください。 「新しいリポジトリを作る」「既存リポジトリを複製する」のどちらを選択した場合も 作成先 or 複製先のディレクトリの下に .git というディレクトリができていることが 確認できるはずです。これが変更履歴の保管庫(リポジトリ)です。Gitはこの .git ディレクトリの下にファイルの変更履歴を蓄積していくことになります。 参考:コマンドラインでのリポジトリ準備 新しいリポジトリを作る → git init 既存リポジトリを複製する → git clone url 複製先パス 2. バージョン管理を始める前準備2:自己紹介 バージョン管理をする目的の1つは、誰が何時どのような更新したのかを記録し その情報を共有することです。そして、"誰が"という情報は、事前にGitに教えて あげる必要があります。 次のようにしてGitに名前とメールアドレスを教えてあげてください。 1.前準備1で残しておいた画面上で「編集」- 「オプション」メニューを選択します。 以下の画面が表示されるはずです。 2.右側「大域(すべてのリポジトリ)」にあるユーザ名、電子メールアドレス欄に 自分の情報をいれて「保存」すれば自己紹介は完了です。 なお、もしGit管理リポジトリごとに違う名前で仕事をしたいなら右側ではなく 左側にあるユーザ名、電子メールアドレスに情報をいれてください。 右側はOSアカウント毎に設定される共通の設定で、 左側はGitリポジトリ毎に設定できる個別設定です。 右側より左側の指定のほうが優先されます。 また、前準備1-3で「スペルチェック機能は使えません」のエラーが出た方は 2-1の画面の下のほうにある「スペルチェック辞書」欄を“none”に変更して 保存すると良いでしょう。 参考:コマンドラインでの自己紹介 git config --global user.name "名前" git config --global user.email "メールアドレス" 3. バージョン管理をする(コミットする) ここまでで前準備が終わり、バージョン管理を始められる状態になりました。 以下のようにすると、git gui にてファイルのスナップショットを記録できます。 (ファイルのスナップショットを記録することを、バージョン管理ツールの用語では “コミットする”といいます) 1.git gui の画面左上の「コミット予定に入っていない変更」欄を見てください。 ここに、追加/変更/削除したファイルの一覧が表示されます。 (最新の状態に更新したい場合は「再スキャン」ボタンを押します) 2.ファイル名をクリックすると、画面右側に変更前後の差分が表示されます。 ここで変更内容をチェックして、コミット対象に含める/含めないを判断します。 3.コミット対象(変更をスナップショットに含める)場合は、 ファイルのアイコン部分をクリックします。 下記画像のように、「ステージングされた(コミット予定の)変更」欄にファイルが移動します。 なお、ファイルの一部変更のみをコミット対象に含めたい場合は、 画面右側の差分表示部分で、当該箇所にマウスカーソルを移動した状態で 右クリックすれば、その箇所のみをコミット対象に含めることができます。 また、ステージングされた変更欄にあるファイルのアイコンをクリックすれば、 ステージングを取り消すことができます。 4. 登録したいファイルを全部ステージング・・欄に移動させたら 画面右下のコミットメッセージ欄に、その変更の概要を記入して「コミット」ボタンを 押します。画面左下に、「コミット xxxx を作成しました」と表示されればコミット成功です。 バージョン管理ツールの基本は、ファイルの編集->コミット(スナップショットの取得)の 繰り返しですので、スナップショットをとりたいと思ったら、その都度上記の作業を繰り返していきます。 参考:コマンドラインでの変更の記録 変更したファイルの情報を表示 → git status ファイルの差分確認 → git diff [--cached] ステージングや取消方法は、git status の出力を参照のこと。 4. 変更履歴を確認する gitk コマンドを実行すると、変更履歴(取得したスナップショットの履歴)が GUIにて確認できます。 gitk の画面はこんなです。 imageプラグインエラー ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (gitk.png) 見て触ってみれば、何がどうなっているのかはすぐ理解できると思います。 とはいえ、念のため説明しておきます。 画面の上部にある点1つ1つがコミットを表わしていて、 新しいコミットが上にあり、古いものほど下に表示されるようになっています。 それぞれの点(コミット)の隣には、コミットメッセージの1行目と、コミット者、コミット日時が表示されています。 コミットメッセージをクリックすると、画面の左下に、そのコミットの詳細(コミットメッセージや、修正前後の差分) が表示されます。また、画面右下には、変更したファイルの一覧が表示されていて、ファイル名をクリックすると 画面の左下の部分がスクロールして、選択したファイルの差分を確認できます。 真ん中の段にあるのは検索フォームで、コミットメッセージなどでの検索ができるようになってます。 デフォルトでは、全てのコミット履歴が表示されるので たくさんコミットされたリポジトリを開く場合は時間のかかる場合があります。 そのような場合は、「gitk - n 」のようにすると、 n 件のコミットのみに絞った表示ができます。 そのほかにも gitk に渡せる引数はたくさんありますので、 マニュアルを参照すると良いでしょう。 コミット部分をクリックするとメニューが表示され、 そこから様々な操作ができます。 (説明は省略しますが、いろいろできますのでぜひ試してみてください) おわり このページでの説明はここまでです。 git gui/gitk では以下の操作もできますので、時間がとれたら その操作方法も記載していきたいと思います。 とはいえ、説明を書かなくてもわかるんじゃないかと思います。GUIですから。 タグの作成 ブランチの作成/マージ/リセット 他リポジトリとの連携(git remote/fetch/pull/push)
https://w.atwiki.jp/vst_prog/pages/81.html
VST Tips(準備中) VST GUIの作成 VST GUIのウィンドウが開かれるだけのサンプルです。 プロジェクトの作成時は以下のソースファイルもプロジェクトに加える必要がある。 (プロジェクトへの追加方法は「VC++ プロジェクトの準備 No.2」参照) vstcontrols.cpp vstgui.cpp aeffguieditor.cpp (vstsdk2.4\vstgui.sf\vstgui 配下に保存されている。) つまみを追加したサンプルはここ つまみをスライダーに変更したサンプルはここ サンプルコード全体 #define _CRT_SECURE_NO_DEPRECATE 1 #include stdio.h #include stdlib.h #include string.h #include math.h #include windows.h #include "audioeffectx.h"#include "vstcontrols.h" // ============================================================================================// 設計情報の記入// ============================================================================================#define MY_VST_VENDOR "test vendor" //作者(ベンダー)名#define MY_VST_VERSION 1 //このVSTバージョン#define MY_VST_PRODUCT_NAME "Sample VST GUI" //このVSTの製品名#define MY_VST_NAME "GUI" //このVSTの名前 #define MY_VST_INPUT_NUM 2 //入力数。モノラル入力=1、ステレオ入力=2#define MY_VST_OUTPUT_NUM 2 //出力数。モノラル出力=1、ステレオ出力=2 #define MY_VST_UNIQUE_ID SMPL //ユニークID //公開する場合は以下URLで発行されたユニークIDを入力する。 //http //ygrabit.steinberg.de/~ygrabit/public_html/index.html #define MY_VST_PRESET_NUM 1 //プリセットプログラムの数#define MY_VST_PARAMETER_NUM 1 //パラメータの数 float midinum;// ============================================================================================// VST GUIクラス// ============================================================================================class VstGui public AEffGUIEditor, CControlListener{public VstGui (void* effect);virtual ~VstGui (); // GUIのWindowを開いたときと閉じたときに処理を行う関数virtual bool open (void *ptr);virtual void close (); // ボタンやつまみ等が動かされたときに処理を行う関数virtual void valueChanged (CDrawContext *pContext, CControl *pControl); protected }; VstGui VstGui (void* effect) AEffGUIEditor ((AudioEffect*)effect){// 継承元のにあるrect変数を初期化。// このrect変数にGUIのWindowsサイズを設定する。// (設定を行わないとWindowが開けない)rect.left = 0;rect.top = 0;rect.right = 512;rect.bottom = 256;} VstGui ~VstGui (){} void VstGui valueChanged (CDrawContext *pContext, CControl *pControl){} bool VstGui open (void *ptr){// まずは継承元の関数を呼び出す(必須)AEffGUIEditor open (ptr); // 次にフレーム(CFrame)を作成する。// ボタンやつまみ等はこのフレームの上に配置する形になる// ここではWindowと同じサイズのフレームを作成しているCRect size (rect.left, rect.top, rect.right, rect.bottom); CFrame* cframe = new CFrame (size, ptr, this);// 作成したフレームは継承元にあるframe変数に値を保存する必要がある。this- frame = cframe; // 処理に問題がなければtrueを返すreturn true;} void VstGui close (){// frameをdeleteすることを忘れないようにするif (frame){delete frame;}frame = 0;} // ============================================================================================// VSTの基本となるクラス// ============================================================================================class MyVSTGUI public AudioEffectX{public MyVSTGUI (audioMasterCallback audioMaster);~MyVSTGUI (); virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames);}; // ============================================================================================// このVSTのを生成するための関数// ============================================================================================AudioEffect* createEffectInstance (audioMasterCallback audioMaster){//newでこのVSTを生成したポインタを返すreturn new MyVSTGUI (audioMaster);} // ============================================================================================// コンストラクタ、デストラクタ(VSTの初期化、終了処理を記述)// ============================================================================================MyVSTGUI MyVSTGUI (audioMasterCallback audioMaster) AudioEffectX (audioMaster, MY_VST_PRESET_NUM, MY_VST_PARAMETER_NUM){//VSTの初期化を行う。 //以下の関数を呼び出して入力数、出力数等の情報を設定する。//必ず呼び出さなければならない。setNumInputs (MY_VST_INPUT_NUM); //入力数の設定setNumOutputs (MY_VST_OUTPUT_NUM); //出力数の設定setUniqueID (MY_VST_UNIQUE_ID); //ユニークIDの設定 isSynth (false); //このVSTがSynthかどうかのフラグを設定。 //Synthの場合…true、Effectorの場合…false canProcessReplacing (); //このVSTが音声処理可能かどうかのフラグを設定。 //音声処理を行わないVSTはないので必ずこの関数を呼び出す。 // GUIを設定するeditor = new VstGui(this); //このVSTのパラメータを初期化する。} MyVSTGUI ~MyVSTGUI (){//VSTの終了処理をする。//このVSTでは特に実行する処理はなし。 // GUIはdeleteしなくていいっぽい} // ============================================================================================// 音声信号を処理するメンバー関数// ============================================================================================void MyVSTGUI processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames){float *inL = inputs[0]; //入力 左用float *inR = inputs[1]; //入力 右用float *outL = outputs[0]; //出力 左用float *outR = outputs[1]; //出力 右用 for (int i = 0; i sampleFrames ; i++){// 入力をそのまま出力へoutL[i] = inL[i];outR[i] = inR[i];}} VST Tipsトップページへ(準備中)